Introduction

P4 is a library of macros and subroutines developed at Argonne National Laboratory for programming a variety of parallel machines. Its predecessor was the m4-based ``Argonne macros'' system described in the Holt, Rinehart, and Winston book Portable Programs for Parallel Processors, by Lusk, Overbeek, et al., from which p4 takes its name[#!lusk-overbeek:p4-book!#]. The current p4 system maintains the same basic computational models described there (monitors for the shared-memory model, message-passing for the distributed-memory model, and support for combining the two models) while significantly increasing ease and flexibility of use. Getting Started for a simple example.

P4 is intended to be portable, simple to install and use, and efficient. It can be used to program networks of workstations, advanced parallel supercomputers like the Intel Touchstone Delta and the Alliant Campus HiPPI-based system, and single shared-memory multiprocessors. It has currently been installed on the following list of machines: Sequent Symmetry (Dynix and PTX), Encore Multimax, Alliant FX/8, FX/800, and FX/2800, Cray X/MP, Sun, NeXT, DEC, Silicon Graphics, HP, and IBM RS6000 workstations, Stardent Titan, BBN GP-1000 and TC-2000, Intel IPSC/860, Intel Touchstone Delta, Alliant Campus, and Thinking Machines' CM-5. It will soon be ported to to the Intel Paragon. It is not difficult to port to new systems. Although p4 tries to be completely portable, there are a small number of specific exceptions (Machine-Specific Notes) that may need to be taken into account on a given machine.

You can obtain the complete distribution of p4 by anonymous ftp from info.mcs.anl.gov. Take the file p4.tar.Z from the directory pub/p4. The distribution contains all source code, installation instructions, this reference manual, and a collection of examples in both C and Fortran. Alog is included in the distribution with p4. The file upshot.tar.Z contains display facilities that can be used with p4 and other systems.

To ask questions about p4, report bugs, contribute examples, etc., you can send mail to p4@mcs.anl.gov.

The current release is version 1.2. You can check which version of the source code you have by looking at the file lib/p4_patchlevel.h in the distribution. You can check which version of the object code you have linked to by running any p4 program with the command-line option -p4version (Command-Line Arguments).

Salient features of the current release of p4 include:

A useful companion system is the alog/upshot logging and X-based trace examination facility. (Creating Logfiles for Upshot.)

Structure of the Distribution Directory,Installing p4,Introduction,Top